这篇笔记包含lecture8-9,Predicate Logic ppt 中的内容。
对应教材《数理逻辑与集合论》中4、5章的内容。
基础概念
谓词(predicate)描述了个体词(individual)的属性。个体词的范围称作论域(dismain of decourse)。通常用大写字母代表谓词。每个谓词将个体词映射为真或假,它有一个相关的元数(arity),这是一个表示它接受参数个数的自然数。有 n 个参数的谓词称作 n元谓词(n-ary predicate)。
例如,在 STRONGER(Tom,Jerry) 里,Tom 和 Jerry 是谓词, STRONGER 是谓词常项,它接受两个参数。
另外, P(x1,...,xn) 不一定是命题。只有谓词变项(predicate variable) P 和个体变项(individual variable) x1,...,xn 均为常项(constant)的时候,这才是一个命题。
函数(function)将一个个体词映射到另一个个体词。注意函数不是命题。
例如, bestfriend(SpongeBob) 不是命题,这个函数的结果是 PatrickStar 。但是 bestfriend(SpongeBob)==PatrickStar 是命题。
| 参数 | 结果 |
|---|
| 联结词 | 命题 | 命题 |
| 谓词 | 个体词 | 命题 |
| 函数 | 个体词 | 个体词 |
量词(quantifier)“将关于个体属性的公式转化为对于某种数量个体属性的公式”,分为全称量词(the universal quantifier)和存在量词(existential quantifier)两种。
全称量词表示某个论域内所有个体都具有相同 的属性,例如 (∀x)(LIKEJERRY(x)) ,其中 x 是约束变元(bound variable), (LIKEJERRY(x)) 是辖域(scope)。
存在量词表示一个命题可以由论域中某个成员满足,例如 (∃x)((∀y)(x≤y)) ,其中 ((∀y)(x≤y)) 是 (∃x) 的辖域。
注意,以 (∃x)P(x)∧Q(x) 为例,其中只有 P(x) 是 (∃x) 的辖域。第二个 x 被称为自由变元(free variable),不受任何量词约束。
命题不应该包含自由变量。自由变量可以用常量替换,或者用量词转为约束变量。
根据变元易名规则,变量的名字可以替换。
以下是量词的其它规则

要更清晰地了解量词,可以在有限论域中考虑。
那么,有
(∀x)P(x)=P(1)∧P(2)∧...∧P(k)
(∃x)P(x)=P(1)∨P(2)∨...∨P(k)
合式公式
项(term)是个体词通过函数生成的表达式。原子公式(原子谓词公式,atomic formula)是一种形如 P(x1,...,xn) 的表达式,其中 P 是谓词,而 x1,...,xn 是项。
合式公式有以下定义:
-
每个原子公式都是WFF。
-
如果 A 和 B 是WFF,则 ¬A , A∧B , A∨B , A→B 和 A↔B 都是WFF,并且要求没有哪个变量在一个公式中是约束变元但在另一个公式中是自由变元。
-
如果 A 是WFF,且 x 在 A 中是自由的,那么 (∀x)A 和 (∃x)A 是WFF。
-
除此之外任何公式都不是WFF。
有效性
如果一个公式在任何解释下都为真,则它普遍有效(universally valid);如果在某些解释下为真,则它是可满足的;如果在所有解释下都为假,则是不可满足的。
显然
- 如果 ¬P 是不可满足的, P 是普遍有效的。
- 如果 ¬P 不是普遍有效的, P 是可满足的。
判定问题
谓词逻辑中的判定问题(decision problem)是指,是否有某种有效的算法可以判定某个问题是不是普遍有效的。结论是,谓词逻辑是不可判定的,但是有限论域中的谓词逻辑是可判定的。
推理演算

以下面这道题为例介绍推理演算的过程:有 (∀x)(P(x)→Q(x)) 、 (∀x)(P(x)→R(x)) ,证明 (∀x)(P(x)→R(x)) 。
(∀x)(P(x)→Q(x))P(x)→Q(x)(∀x)(Q(x)→R(x))Q(x)→R(x)P(x)→R(x)(∀x)(P(x)→R(x))
其中 (2) (4) 到 (5) 为三段论, (1) 到 (2) 和 (3) 到 (4) 为全称量词消去规则, (5) 到 (6) 为全称量词引入规则。此外还有存在量词消去规则和存在量词 引入规则。
存在量词消去规则:(∃x)P(x)⟹P(c) (c 为常量)
存在量词引入规则:P(c)⟹(∃x)P(x)
如果在任何解释下, A 和 B 都有相同的真值表,则 A 与 B 是相等的。也可以写成 A↔B 是普遍有效的 /A=B / A⇔B 。
命题逻辑中的某些等式可以直接应用到谓词逻辑中。
- ¬¬(∀x)P(x)=(∀x)P(x)
- (∀x)P(x)→(∃x)Q(x)=¬(∀x)P(x)∨(∃x)Q(x)
对于与 ¬ 有关的公式,有以下两条等式。
- ¬(∀x)P(x)=(∃x)¬P(x)
- ¬(∃x)P(x)=(∀x)¬P(x)
更进一步,有
¬(∀x)(∀y)P(x,y)=(∃x)(∃y)¬P(x,y)
等等,注意摩根律仍然适用。
分配律有以下几类等。
第一类:
- (∀x)(P(x)∨q)=(∀x)P(x)∨q
- (∃x)(P(x)∨q)=(∃x)P(x)∨q
- (∀x)(P(x)∧q)=(∀x)P(x)∧q
- (∃x)(P(x)∧q)=(∃x)P(x)∧q
第二类:
- (∀x)(P(x)→q)=(∀x)P(x)→q
- (∃x)(P(x)→q)=(∃x)P(x)→q
- (∀x)(q→P(x))=q→(∀x)P(x)
- (∃x)(q→P(x))=q→(∃x)P(x)
第三类:
- (∀x)(P(x)∧Q(x))=(∀x)P(x)∧(∀x)Q(x)
- (∃x)(P(x)∨Q(x))=(∃x)P(x)∨(∃x)Q(x)
第四类:
- (∀x)(∀y)(P(x)∨Q(y))=(∀x)P(x)∨(∀x)Q(x)
- (∃x)(∃y)(P(x)∧Q(y))=(∃x)P(x)∧(∃x)Q(x)
其中,对于第一、二类,要求 x 与 q 无关。
前束范式
如果某个公式由一系列量词和关联的变量连接并在最后接着一个自由的部分(母式/基式,matrix),则这个公式是前束范式(PNF,prenex normal form)。任何谓词逻辑中的公式都有对应的前束范式表示。
把一个公式转为PNF需要以下几步:
-
消去箭头。
-
将 ¬ 移到内侧。
-
将量词移到左侧。
-
改变约束变元的名称,不相干的变元不要重复。
-
再次将所有量词移到左侧。
以 ¬((∀x)(∃y)P(a,x,y)→(∃x)(¬(∀y)Q(y,b)→R(x))) 为例。